suppressPackageStartupMessages({
  library(ggplot2)
  library(enrichMiR)
  library(cowplot)
  library(readxl)
  library(S4Vectors)
})
theme_set(theme_cowplot(font_size = 12))
CDplot <- function (ll, by = NULL, k = 3, breaks = NULL, sameFreq = FALSE, 
    addN = FALSE, dig.lab = NULL, minN = 10, title="", ...) 
{
    library(ggplot2)
    if (!is.list(ll)) {
        if (is.null(by)) 
            stop("If `ll` is not already a list, `by` should be given.")
        if (length(by) != length(ll)) 
            stop("Lengths of ll and by differ.")
        w <- which(!is.na(by) & !is.na(ll))
        by <- by[w]
        ll <- ll[w]
        if (is.factor(by) || is.logical(by) || length(unique(by)) < 
            7) {
            ll <- split(ll, by)
        }
        else {
            if (is.null(dig.lab)) 
                dig.lab <- max(c(2, 3 - ceiling(log10(abs(mean(by))))))
            if (is.null(breaks)) 
                breaks <- k
            if (sameFreq) {
                k <- k + 1
                breaks <- unique(quantile(by, prob = seq(from = 0, 
                  to = 1, length.out = k), na.rm = TRUE))
                if (length(breaks) < k) 
                  breaks <- unique(quantile(c(0, by[by != 0]), 
                    prob = seq(from = 0, to = 1, length.out = k), 
                    na.rm = TRUE))
                if (length(breaks) < k) {
                  desiredK <- k
                  breaks <- 1
                  while (length(breaks) < desiredK && k < 100) {
                    k <- k
                    breaks <- unique(quantile(by, prob = seq(from = 0, 
                      to = 1, length.out = k), na.rm = TRUE))
                  }
                }
            }
            ll <- split(ll, cut(by, breaks, dig.lab = dig.lab))
        }
    }
    ll <- enrichMiR:::.mergeSmallerGroups(ll, minN = minN)
    print(paste(title, ks.test(ll[[1]],rev(ll)[[1]])$p.value))
    d <- dplyr::bind_rows(lapply(ll, FUN = function(x) {
        data.frame(y = (seq_along(x) - 1)/(length(x) - 1), x = sort(x))
    }), .id = "Sets")
    d$Sets <- factor(d$Sets, levels = unique(d$Sets))
    if (addN) 
        levels(d$Sets) <- paste0(levels(d$Sets), " (n=", as.numeric(table(d$Sets)), 
            ")")
    p <- ggplot(d, aes(x, y, colour = Sets)) + geom_vline(xintercept = 0, 
        linetype = "dashed") + geom_line(...)
    p + ylab("Cumulative proportion") + ggtitle(title)
}
df <- list( sperm=read.delim("sperm_longRNAseq_Kathi_molecular_psychiatry_2018.csv",header=TRUE,row.names=1),
            zygote=read.delim("zygote_kathi_MSUS_Control.csv",header=TRUE,row.names=1))
e <- as.data.frame(read_excel("embryos_diff_analysis_results_dream.xlsx"))
e <- e[!duplicated(e$symbol) & !is.na(e$symbol),]
row.names(e) <- e$symbol
df$embryo <- e

df <- lapply(df, FUN=enrichMiR:::.homogenizeDEA)

mirs <- c("mmu-miR-871-3p","mmu-miR-31-5p","mmu-miR-155-5p","mmu-miR-878-5p","mmu-miR-34c-5p",
          "mmu-miR-202-5p","mmu-miR-15a-5p","mmu-miR-329-3p","mmu-miR-335-5p","mmu-miR-206-3p")

Using targetScan (all sites)

ts <- readRDS("/mnt/schratt/enrichMiR_data/Targetscan/20201102_Targetscan_Mouse_AllSites_mouse.rds")
fam <- setNames(metadata(ts)$families[mirs], mirs)
getVals <- function(x, set, ts, val="score"){
  x <- x[x %in% levels(ts$feature)]
  y <- setNames(rep(0,length(x)),x)
  ts <- ts[ts$set==set,]
  y[as.character(ts$feature)] <- ts[[val]]
  y
}
doplot <- function(ts, set, e, val="score", ...){
  by <- getVals(row.names(e),set,ts,val=val)
  lfc <- setNames(e[names(by),"logFC"],names(by))
  CDplot(lfc, by=by, title=names(set), ...)
}

Zygotes

Sites

xtit <- "Zygote logFC"
p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$zygote, breaks=c(0,1,3,10), val="sites", size=1.4) + 
    labs(x=xtit, colour="NbSites", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.7, 0.25))
})
## [1] "mmu-miR-871-3p 0.0342151429355011"
## [1] "mmu-miR-31-5p 0.613228290095045"
## [1] "mmu-miR-155-5p 0.185504507971212"
## [1] "mmu-miR-878-5p 0.234714739481151"
## [1] "mmu-miR-34c-5p 0.802356614955881"
## [1] "mmu-miR-202-5p 0.900259248081046"
## [1] "mmu-miR-15a-5p 0.0184688874555341"
## [1] "mmu-miR-329-3p 0.138730281258961"
## [1] "mmu-miR-335-5p 0.624002811028473"
## [1] "mmu-miR-206-3p 0.736950894383832"
plot_grid(plotlist = p, nrow = 5)

Scores

p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$zygote, k=3, sameFreq=TRUE, val="score", size=1.4, dig.lab=2) + 
    labs(x=xtit, colour="context score", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.65, 0.25))
})
## [1] "mmu-miR-871-3p 0.0205082081103048"
## [1] "mmu-miR-31-5p 7.66294513373511e-05"
## [1] "mmu-miR-155-5p 0.00502056115320393"
## [1] "mmu-miR-878-5p 0.0730000579082727"
## [1] "mmu-miR-34c-5p 2.51711099861218e-05"
## [1] "mmu-miR-202-5p 0.0853739146546955"
## [1] "mmu-miR-15a-5p 3.00267444208746e-06"
## [1] "mmu-miR-329-3p 4.01484182122047e-07"
## [1] "mmu-miR-335-5p 9.32261081387775e-06"
## [1] "mmu-miR-206-3p 0.0485324757514297"
plot_grid(plotlist = p, nrow = 5)

Embryo

Sites

xtit <- "Embryo logFC"
p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$embryo, breaks=c(0,1,3,10), val="sites", size=1.4) + 
    labs(x=xtit, colour="NbSites", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.7, 0.25))
})
## [1] "mmu-miR-871-3p 0.325040996515913"
## [1] "mmu-miR-31-5p 0.334803753228905"
## [1] "mmu-miR-155-5p 0.54005795621705"
## [1] "mmu-miR-878-5p 0.573451539159775"
## [1] "mmu-miR-34c-5p 0.893506964275063"
## [1] "mmu-miR-202-5p 0.978854781784588"
## [1] "mmu-miR-15a-5p 0.459860310876121"
## [1] "mmu-miR-329-3p 0.273840615554548"
## [1] "mmu-miR-335-5p 0.371802299927641"
## [1] "mmu-miR-206-3p 0.66346132793046"
plot_grid(plotlist = p, nrow = 5)

Scores

p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$embryo, k=3, sameFreq=TRUE, val="score", size=1.4, dig.lab=2) + 
    labs(x=xtit, colour="context score", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.65, 0.25))
})
## [1] "mmu-miR-871-3p 0.260165431701375"
## [1] "mmu-miR-31-5p 0.233549187810498"
## [1] "mmu-miR-155-5p 0.489237014247127"
## [1] "mmu-miR-878-5p 0.52801464250823"
## [1] "mmu-miR-34c-5p 0.134093329167522"
## [1] "mmu-miR-202-5p 0.716073281130784"
## [1] "mmu-miR-15a-5p 0.98590105575504"
## [1] "mmu-miR-329-3p 0.938184258722547"
## [1] "mmu-miR-335-5p 0.0812785936984055"
## [1] "mmu-miR-206-3p 0.810467570384735"
plot_grid(plotlist = p, nrow = 5)

Sperm

Sites

xtit <- "Sperm logFC"
p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$sperm, breaks=c(0,1,3,10), val="sites", size=1.4) + 
    labs(x=xtit, colour="NbSites", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.7, 0.25))
})
## [1] "mmu-miR-871-3p 0.320834866436564"
## [1] "mmu-miR-31-5p 0.675186896540313"
## [1] "mmu-miR-155-5p 0.309005294272651"
## [1] "mmu-miR-878-5p 0.484391138972185"
## [1] "mmu-miR-34c-5p 0.310277797164972"
## [1] "mmu-miR-202-5p 0.319836749081971"
## [1] "mmu-miR-15a-5p 0.0389228575661364"
## [1] "mmu-miR-329-3p 0.19763177206496"
## [1] "mmu-miR-335-5p 0.0349573913564567"
## [1] "mmu-miR-206-3p 0.357935413734141"
plot_grid(plotlist = p, nrow = 5)

Scores

p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$sperm, k=3, sameFreq=TRUE, val="score", size=1.4, dig.lab=2) + 
    labs(x=xtit, colour="context score", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.65, 0.25))
})
## [1] "mmu-miR-871-3p 0.0129410737504753"
## [1] "mmu-miR-31-5p 0.035338751842581"
## [1] "mmu-miR-155-5p 1.87126523387704e-07"
## [1] "mmu-miR-878-5p 0.00119637317356347"
## [1] "mmu-miR-34c-5p 0.0112933600266281"
## [1] "mmu-miR-202-5p 0.0463311943031428"
## [1] "mmu-miR-15a-5p 3.19039389843345e-05"
## [1] "mmu-miR-329-3p 6.0317093465434e-06"
## [1] "mmu-miR-335-5p 0.000248128239410561"
## [1] "mmu-miR-206-3p 0.00183155804091462"
plot_grid(plotlist = p, nrow = 5)

Using targetScan (conserved sites)

ts <- readRDS("/mnt/schratt/enrichMiR_data/Targetscan/20201102_Targetscan_Mouse_ConSites_mouse.rds")
fam <- setNames(as.character(fam), names(fam))
fam <- fam[fam %in% levels(ts$set)]

Zygotes

Sites

xtit <- "Zygote logFC"
p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$zygote, breaks=c(0,1,3,10), val="sites", size=1.4) + 
    labs(x=xtit, colour="NbSites", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.7, 0.25))
})
## [1] "mmu-miR-31-5p 0.184730832674956"
## [1] "mmu-miR-155-5p 0.469717158989"
## [1] "mmu-miR-34c-5p 0.887443015303102"
## [1] "mmu-miR-202-5p 0.0956097861893803"
## [1] "mmu-miR-15a-5p 0.806829167860812"
## [1] "mmu-miR-329-3p 0.379952695854162"
## [1] "mmu-miR-335-5p 0.177118083280719"
## [1] "mmu-miR-206-3p 0.0587536070269169"
plot_grid(plotlist = p, nrow = 4)

Scores

p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$zygote, k=3, sameFreq=TRUE, val="score", size=1.4, dig.lab=2) + 
    labs(x=xtit, colour="context score", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.65, 0.25))
})
## [1] "mmu-miR-31-5p 0.18081059262906"
## [1] "mmu-miR-155-5p 0.479376787445864"
## [1] "mmu-miR-34c-5p 0.6208031996307"
## [1] "mmu-miR-202-5p 0.858423577067009"
## [1] "mmu-miR-15a-5p 0.063418821435808"
## [1] "mmu-miR-329-3p 0.210206949447425"
## [1] "mmu-miR-335-5p 0.0131355660200864"
## [1] "mmu-miR-206-3p 0.0936937909122906"
plot_grid(plotlist = p, nrow = 4)

Embryo

Sites

xtit <- "Embryo logFC"
p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$embryo, breaks=c(0,1,3,10), val="sites", size=1.4) + 
    labs(x=xtit, colour="NbSites", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.7, 0.25))
})
## [1] "mmu-miR-31-5p 0.818879613958066"
## [1] "mmu-miR-155-5p 0.529987671062015"
## [1] "mmu-miR-34c-5p 0.179561621905284"
## [1] "mmu-miR-202-5p 0.125319600889517"
## [1] "mmu-miR-15a-5p 0.28142472309873"
## [1] "mmu-miR-329-3p 0.712352790003916"
## [1] "mmu-miR-335-5p 0.0825783640581742"
## [1] "mmu-miR-206-3p 0.356971007420054"
plot_grid(plotlist = p, nrow = 4)

Scores

p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$embryo, k=3, sameFreq=TRUE, val="score", size=1.4, dig.lab=2) + 
    labs(x=xtit, colour="context score", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.65, 0.25))
})
## [1] "mmu-miR-31-5p 0.886429469545563"
## [1] "mmu-miR-155-5p 0.257566704961063"
## [1] "mmu-miR-34c-5p 0.143435217310236"
## [1] "mmu-miR-202-5p 0.753468906672615"
## [1] "mmu-miR-15a-5p 0.828867061480089"
## [1] "mmu-miR-329-3p 0.53935342705444"
## [1] "mmu-miR-335-5p 0.464007234930769"
## [1] "mmu-miR-206-3p 0.673987216735558"
plot_grid(plotlist = p, nrow = 4)

Sperm

Sites

xtit <- "Sperm logFC"
p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$sperm, breaks=c(0,1,3,10), val="sites", size=1.4) + 
    labs(x=xtit, colour="NbSites", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.7, 0.25))
})
## [1] "mmu-miR-31-5p 0.0110563775122299"
## [1] "mmu-miR-155-5p 0.146243410377823"
## [1] "mmu-miR-34c-5p 0.933189705146401"
## [1] "mmu-miR-202-5p 5.15436043948547e-05"
## [1] "mmu-miR-15a-5p 0.165105125378995"
## [1] "mmu-miR-329-3p 0.0238179799952071"
## [1] "mmu-miR-335-5p 0.107576128934961"
## [1] "mmu-miR-206-3p 0.331041081113633"
plot_grid(plotlist = p, nrow = 4)

Scores

p <- lapply(names(fam), FUN=function(x){
  doplot(ts, fam[x], df$sperm, k=3, sameFreq=TRUE, val="score", size=1.4, dig.lab=2) + 
    labs(x=xtit, colour="context score", y="") + xlim(-1.5,1.5) +
    theme(legend.position = c(0.65, 0.25))
})
## [1] "mmu-miR-31-5p 0.341167832202413"
## [1] "mmu-miR-155-5p 0.0461552226468529"
## [1] "mmu-miR-34c-5p 0.232100664961071"
## [1] "mmu-miR-202-5p 0.232274970262658"
## [1] "mmu-miR-15a-5p 0.00306459832837036"
## [1] "mmu-miR-329-3p 0.0164378119541457"
## [1] "mmu-miR-335-5p 0.0353998693738633"
## [1] "mmu-miR-206-3p 0.000730312872537442"
plot_grid(plotlist = p, nrow = 4)

Candidate targets for miR-31-5p

Upregulated

ts1 <- readRDS("/mnt/schratt/enrichMiR_data/Targetscan/20201102_Targetscan_Mouse_AllSites_mouse.rds")
seed <- as.character(metadata(ts1)$families["mmu-miR-31-5p"])
ts1 <- ts1[ts1$set==seed,]
ts2 <- readRDS("/mnt/schratt/enrichMiR_data/Targetscan/20201102_Targetscan_Mouse_ConSites_mouse.rds")
ts2 <- ts2[ts2$set==seed,]
row.names(ts1) <- ts1$feature
ts1$conserved.sites <- 0
ts1[as.character(ts2$feature),"conserved.sites"] <- ts2$sites
colnames(ts1)[4] <- "targetscan.score"
df$embryo <- df$embryo[,-1:-7]
cands <- lapply(df, FUN=function(x){
  m <- merge(x[x$PValue<0.05,],ts1, by.x="row.names", by.y="feature")
  m <- m[order(-(
    2*abs(m$targetscan.score) + m$logFC - log10(m$FDR) + as.numeric(m$conserved.sites>0) )),]
  row.names(m) <- m$Row.names
  m <- m[m$targetscan.score < 0.1,]
  m$t <- m$Row.names <- m$set <- m$agg <- m$z.std <- NULL
  for(f in colnames(m)){
    if(is.numeric(m[[f]]) && !is.integer(m[[f]]))
      m[[f]] <- dround(m[[f]], 2, TRUE)
  }
  as.data.frame(m)
})
saveRDS(cands, file="candidate_targets.rds")
lapply(cands, head)
## $sperm
##         logFC meanExpr  PValue    FDR sites targetscan.score conserved.sites
## Glul     1.00      7.7 2.4e-06 0.0042     2            -0.60               1
## Pik3c2a  1.00      4.2 3.0e-06 0.0048     2            -0.36               2
## Trank1   0.93      4.7 6.9e-05 0.0240     3            -0.53               1
## Wdr5     1.00      1.8 2.1e-03 0.1000     2            -0.65               1
## Eif5     0.93      5.2 8.4e-05 0.0260     1            -0.39               1
## Bicd1    1.10      3.7 1.1e-04 0.0280     2            -0.23               1
## 
## $zygote
##               logFC meanExpr  PValue  FDR sites targetscan.score
## Ugt1a5         2.20    -2.90 0.01600 0.12     1            -0.41
## Tmprss11f      0.96    -5.00 0.02400 0.12     3            -0.51
## Rsbn1          0.48     3.40 0.01900 0.12     3            -0.67
## A530084C06Rik  2.30    -3.10 0.00081 0.12     2            -0.27
## Rab29          0.63     0.16 0.04500 0.12     2            -0.54
## Fndc5          0.92     3.20 0.03400 0.12     1            -0.39
##               conserved.sites
## Ugt1a5                      0
## Tmprss11f                   1
## Rsbn1                       2
## A530084C06Rik               0
## Rab29                       1
## Fndc5                       1
## 
## $embryo
##        logFC AveExpr PValue FDR sites targetscan.score conserved.sites
## Snx22   0.97    2.90 0.0260   1     2            -0.25               2
## Ccar2   1.50    0.78 0.0220   1     2            -0.49               0
## Cep85   0.78    4.20 0.0150   1     1            -0.18               1
## Abcb6   1.60    2.00 0.0017   1     1            -0.27               0
## Ppp3ca  0.63    5.10 0.0390   1     1            -0.25               1
## Kdm2b   0.36    5.10 0.0099   1     1            -0.36               1

Downregulated

lapply(cands, FUN=function(m){
  m <- m[order(-(
    2*abs(m$targetscan.score) - m$logFC - log10(m$FDR) + as.numeric(m$conserved.sites>0) )),]
  head(m,10)
})
## $sperm
##         logFC meanExpr  PValue   FDR sites targetscan.score conserved.sites
## Cxcl12   -1.5     2.20 2.6e-05 0.014     1           -0.590               1
## Slc17a8  -2.9    -2.80 3.5e-03 0.120     1           -0.190               1
## Vipr2    -2.8    -3.90 1.5e-04 0.033     2           -0.350               0
## Mrap2    -3.2    -2.40 2.0e-04 0.037     1           -0.130               0
## Itga5    -2.1    -1.00 1.4e-04 0.032     1           -0.140               1
## Cd28     -1.9    -1.70 3.8e-03 0.130     2           -0.450               1
## Gpr179   -2.5    -1.50 1.6e-03 0.094     1           -0.038               1
## Psmb11   -2.7    -2.60 7.9e-04 0.072     2           -0.340               0
## Tpsb2    -2.7    -3.80 6.7e-04 0.066     1           -0.310               0
## Slc10a2  -2.7    -0.99 7.4e-05 0.025     1           -0.085               0
## 
## $zygote
##        logFC meanExpr PValue  FDR sites targetscan.score conserved.sites
## Hsf2bp -2.30    -1.60 0.0300 0.12     1           -0.460               1
## Satb2  -1.90    -1.60 0.0110 0.12     2           -0.380               2
## Dpep3  -2.50    -2.90 0.0029 0.12     1           -0.019               1
## Jazf1  -1.20    -0.23 0.0015 0.12     2           -0.640               1
## Ret    -1.90    -1.80 0.0100 0.12     2           -0.250               1
## Wdr5   -0.93     2.50 0.0360 0.12     2           -0.650               1
## Snx22  -1.70    -1.30 0.0067 0.12     2           -0.250               2
## Rab9b  -1.20    -4.30 0.0380 0.12     2           -0.490               1
## Nr5a2  -1.50     1.30 0.0140 0.12     1           -0.320               1
## Plin1  -2.70    -0.62 0.0290 0.12     1           -0.210               0
## 
## $embryo
##         logFC AveExpr  PValue FDR sites targetscan.score conserved.sites
## Plekhg2 -1.80  -0.470 0.00078   1     1           -0.007               0
## Cacnb2  -0.49   4.600 0.02300   1     2           -0.160               1
## Shank1  -0.96  -0.029 0.02300   1     1           -0.320               0
## Purg    -1.10   1.100 0.02500   1     1           -0.230               0
## Tmc2    -1.40   0.890 0.03700   1     1           -0.049               0
## Klhl18  -0.97   2.200 0.00900   1     3           -0.230               0
## Kdm2b    0.36   5.100 0.00990   1     1           -0.360               1
## Nr1h4   -1.30   0.480 0.00650   1     1            0.000               0
## Pqlc1   -0.37   6.100 0.01200   1     2           -0.460               0
## Etv5    -0.92   2.000 0.03700   1     1           -0.170               0

Session

sessionInfo()
## R version 4.0.3 (2020-10-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 18.04 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
## 
## locale:
##  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
##  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
##  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
## [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
## 
## attached base packages:
## [1] parallel  stats4    stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] readxl_1.3.1         cowplot_1.1.1        enrichMiR_0.99.4    
##  [4] MASS_7.3-53.1        glmnet_4.1-1         Matrix_1.3-2        
##  [7] limma_3.46.0         shinydashboard_0.7.1 shiny_1.6.0         
## [10] data.table_1.14.0    S4Vectors_0.28.1     BiocGenerics_0.36.0 
## [13] ggplot2_3.3.3       
## 
## loaded via a namespace (and not attached):
##   [1] fgsea_1.16.0                colorspace_2.0-0           
##   [3] ellipsis_0.3.1              XVector_0.30.0             
##   [5] GenomicRanges_1.42.0        farver_2.1.0               
##   [7] DT_0.17                     bit64_4.0.5                
##   [9] AnnotationDbi_1.52.0        fansi_0.4.2                
##  [11] xml2_1.3.2                  codetools_0.2-18           
##  [13] splines_4.0.3               cachem_1.0.4               
##  [15] knitr_1.31                  jsonlite_1.7.2             
##  [17] Rsamtools_2.6.0             dbplyr_2.1.0               
##  [19] GO.db_3.12.1                geneLenDataBase_1.26.0     
##  [21] compiler_4.0.3              httr_1.4.2                 
##  [23] assertthat_0.2.1            fastmap_1.1.0              
##  [25] later_1.1.0.1               htmltools_0.5.1.1          
##  [27] prettyunits_1.1.1           tools_4.0.3                
##  [29] gtable_0.3.0                glue_1.4.2                 
##  [31] GenomeInfoDbData_1.2.4      dplyr_1.0.5                
##  [33] rappdirs_0.3.3              fastmatch_1.1-0            
##  [35] Rcpp_1.0.6                  Biobase_2.50.0             
##  [37] cellranger_1.1.0            jquerylib_0.1.3            
##  [39] vctrs_0.3.6                 Biostrings_2.58.0          
##  [41] nlme_3.1-152                rtracklayer_1.50.0         
##  [43] iterators_1.0.13            xfun_0.22                  
##  [45] stringr_1.4.0               mime_0.10                  
##  [47] lifecycle_1.0.0             shinycssloaders_1.0.0      
##  [49] XML_3.99-0.6                scam_1.2-10                
##  [51] zlibbioc_1.36.0             scales_1.1.1               
##  [53] hms_1.0.0                   promises_1.2.0.1           
##  [55] MatrixGenerics_1.2.1        SummarizedExperiment_1.20.0
##  [57] curl_4.3                    yaml_2.2.1                 
##  [59] memoise_2.0.0               goseq_1.42.0               
##  [61] gridExtra_2.3               sass_0.3.1                 
##  [63] biomaRt_2.46.3              stringi_1.5.3              
##  [65] RSQLite_2.2.4               highr_0.8                  
##  [67] zetadiv_1.2.0               foreach_1.5.1              
##  [69] GenomicFeatures_1.42.2      BiocParallel_1.24.1        
##  [71] shape_1.4.5                 GenomeInfoDb_1.26.4        
##  [73] rlang_0.4.10                pkgconfig_2.0.3            
##  [75] bitops_1.0-6                matrixStats_0.58.0         
##  [77] evaluate_0.14               lattice_0.20-41            
##  [79] purrr_0.3.4                 labeling_0.4.2             
##  [81] GenomicAlignments_1.26.0    htmlwidgets_1.5.3          
##  [83] bit_4.0.4                   tidyselect_1.1.0           
##  [85] magrittr_2.0.1              R6_2.5.0                   
##  [87] IRanges_2.24.1              generics_0.1.0             
##  [89] DelayedArray_0.16.2         DBI_1.1.1                  
##  [91] pillar_1.5.1                aggregation_1.0.1          
##  [93] withr_2.4.1                 mgcv_1.8-34                
##  [95] survival_3.2-10             RCurl_1.98-1.3             
##  [97] tibble_3.1.0                crayon_1.4.1               
##  [99] utf8_1.2.1                  BiocFileCache_1.14.0       
## [101] rmarkdown_2.7               progress_1.2.2             
## [103] grid_4.0.3                  blob_1.2.1                 
## [105] digest_0.6.27               xtable_1.8-4               
## [107] httpuv_1.5.5                openssl_1.4.3              
## [109] munsell_0.5.0               BiasedUrn_1.07             
## [111] bslib_0.2.4                 askpass_1.1